export class Environment
{
public Title: string;
public Code: string;
public constructor(init?: Partial<Environment>) { (Object as any).assign(this, init); }
}
export class Party
{
public Title: string;
public Code: string;
public Version: string;
public Environment: Environment;
public constructor(init?: Partial<Party>) { (Object as any).assign(this, init); }
}
export class Header
{
public MessageID: string;
public Timestamp: string;
public Sender: Party;
public Recipient: Party;
public RequestMessageID: Object;
public constructor(init?: Partial<Header>) { (Object as any).assign(this, init); }
}
export class Reference
{
public GlobalID: string;
public Title: string;
public constructor(init?: Partial<Reference>) { (Object as any).assign(this, init); }
}
export class Address
{
public AddressLine1: string;
public AddressLine2: string;
public HouseNumber: string;
public HouseNumberSuffix: string;
public PostalCode: string;
public City: string;
public Country: Reference;
public constructor(init?: Partial<Address>) { (Object as any).assign(this, init); }
}
export class MailingAddress
{
public POBox: string;
public PostalCode: string;
public City: string;
public Country: Reference;
public constructor(init?: Partial<MailingAddress>) { (Object as any).assign(this, init); }
}
export class Project
{
public GlobalID: string;
public CreationDate?: string;
public CreatedBy: string;
public ModifiedDate?: string;
public ModifiedBy: string;
public Code: string;
public Name: string;
public Description1: string;
public Description2: string;
public Address: Address;
public MailingAddress: MailingAddress;
public ProjectCategoryReference: Reference;
public ProjectTypeReference: Reference;
public ProjectStatusReference: Reference;
public StartDate?: string;
public EndDate?: string;
public CompletionDate?: string;
public Inactive: boolean;
public Website: string;
public IsTemplateProject: boolean;
public CustomFields: CustomField[];
public constructor(init?: Partial<Project>) { (Object as any).assign(this, init); }
}
export class ProjectResponseMessage
{
public Header: Header;
public ProjectReference: Reference;
public Project: Project;
public HousingTypes: HousingType[];
public ConstructionBlocks: ConstructionBlock[];
public ConstructionNumbers: ConstructionNumber[];
public Documents: Document[];
public PurchaseContracts: PurchaseContract[];
public constructor(init?: Partial<ProjectResponseMessage>) { (Object as any).assign(this, init); }
}
export class ProjectRequestMessage
{
public Header: Header;
public ProjectReference: Reference;
public IncludeHousingTypes: boolean;
public IncludeConstructionBlocks: boolean;
public IncludeConstructionNumbers: boolean;
public IncludeDocuments: boolean;
public IncludePurchaseContracts: boolean;
public constructor(init?: Partial<ProjectRequestMessage>) { (Object as any).assign(this, init); }
}
export class ProcessProjectRequestMessage
{
public InstanceId: string;
public ProjectRequest: ProjectRequestMessage;
public constructor(init?: Partial<ProcessProjectRequestMessage>) { (Object as any).assign(this, init); }
}
export class CustomField
{
public Name: string;
public Value: string;
public constructor(init?: Partial<CustomField>) { (Object as any).assign(this, init); }
}
export class HousingType
{
public GlobalID: string;
public ProjectReference: Reference;
public Code: string;
public Description: string;
public CustomFields: CustomField[];
public CreationDate?: string;
public CreatedBy: string;
public ModifiedDate?: string;
public ModifiedBy: string;
public constructor(init?: Partial<HousingType>) { (Object as any).assign(this, init); }
}
export class ConstructionBlock
{
public GlobalID: string;
public ProjectReference: Reference;
public Code: string;
public Description: string;
public CustomFields: CustomField[];
public CreationDate?: string;
public CreatedBy: string;
public ModifiedDate?: string;
public ModifiedBy: string;
public constructor(init?: Partial<ConstructionBlock>) { (Object as any).assign(this, init); }
}
export class ConstructionNumber
{
public GlobalID: string;
public ProjectReference: Reference;
public HousingTypeReference: Reference;
public ConstructionBlockReference: Reference;
public Code: string;
public Description: string;
public Address: Address;
public RentalHouse: boolean;
public GuaranteeCertificateNumber: string;
public Inactive: boolean;
public CustomFields: CustomField[];
public CreationDate?: string;
public CreatedBy: string;
public ModifiedDate?: string;
public ModifiedBy: string;
public ViewingDate?: string;
public ViewingDateSpecified: boolean;
public DeliveryDate?: string;
public DeliveryDateSpecified: boolean;
public constructor(init?: Partial<ConstructionNumber>) { (Object as any).assign(this, init); }
}
export class Document implements ICustomProperties
{
public ID: string;
public RootDocumentID: string;
public RegistrationprofileID: string;
public Title: string;
public FullTitle: string;
public Number: string;
public Version: string;
public ExternalNumber: string;
public ExternalVersion: string;
public InternalNumber: string;
public InternalInvoiceNumber: string;
public PersonID: number;
public RelationID: number;
public RelationTitle: string;
public ProjectID: number;
public ProjectTitle: string;
public Extension: string;
public Date?: string;
public CommentsCount: number;
public HasComments: boolean;
public HasPreview: boolean;
public ExtraField: string;
public IsFavorite: boolean;
public DocumentcategoryText: string;
public FileSize?: number;
public FileDate?: string;
public Hash: string;
public HashType: string;
public FileUrl: string;
public StandardDocumentUrl: string;
public IsCorporateIdentity: boolean;
public UserTitle: string;
public IsFrozen: boolean;
public InternalCompanyID: number;
public DirectUrl: string;
public AllowDigitalSigningOnlyOnPrimaryVersions: boolean;
public IsPrimaryVersion: boolean;
public FileExtension: string;
public CustomProperties: { [index: string]: Object; };
public constructor(init?: Partial<Document>) { (Object as any).assign(this, init); }
}
export class Relation
{
public GlobalID: string;
public NameLine1: string;
public NameLine2: string;
public Address: Address;
public MailingAddress: MailingAddress;
public Telephone: string;
public Mobile: string;
public Email: string;
public IBAN: string;
public BankAccountNumber: string;
public Website: string;
public Inactive: boolean;
public CustomFields: CustomField[];
public CreationDate?: string;
public CreatedBy: string;
public ModifiedDate?: string;
public ModifiedBy: string;
public constructor(init?: Partial<Relation>) { (Object as any).assign(this, init); }
}
export class PurchaseContract
{
public GlobalID: string;
public Code: string;
public Description: string;
public ProjectReference: Reference;
public ProductCode: string;
public Relation: Relation;
public Inactive: boolean;
public CustomFields: CustomField[];
public CreationDate?: string;
public CreatedBy: string;
public ModifiedDate?: string;
public ModifiedBy: string;
public constructor(init?: Partial<PurchaseContract>) { (Object as any).assign(this, init); }
}
TypeScript ProcessProjectRequestMessage DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsv/reply/ProcessProjectRequestMessage HTTP/1.1
Host: kpm_digiofficeapigateway.tbi.nl
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
ProjectRequest:
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
ProjectReference:
{
GlobalID: String,
Title: String
},
IncludeHousingTypes: False,
IncludeConstructionBlocks: False,
IncludeConstructionNumbers: False,
IncludeDocuments: False,
IncludePurchaseContracts: False
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
Header:
{
MessageID: String,
Timestamp: 0001-01-01,
Sender:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
Recipient:
{
Title: String,
Code: String,
Version: String,
Environment:
{
Title: String,
Code: String
}
},
RequestMessageID: {}
},
ProjectReference:
{
GlobalID: String,
Title: String
},
Project:
{
GlobalID: String,
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String,
Code: String,
Name: String,
Description1: String,
Description2: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
MailingAddress:
{
POBox: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
ProjectCategoryReference:
{
GlobalID: String,
Title: String
},
ProjectTypeReference:
{
GlobalID: String,
Title: String
},
ProjectStatusReference:
{
GlobalID: String,
Title: String
},
StartDate: 0001-01-01,
EndDate: 0001-01-01,
CompletionDate: 0001-01-01,
Inactive: False,
Website: String,
IsTemplateProject: False,
CustomFields:
[
{
Name: String,
Value: String
}
]
},
HousingTypes:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
ConstructionBlocks:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
ConstructionNumbers:
[
{
GlobalID: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
HousingTypeReference:
{
GlobalID: String,
Title: String
},
ConstructionBlockReference:
{
GlobalID: String,
Title: String
},
Code: String,
Description: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
RentalHouse: False,
GuaranteeCertificateNumber: String,
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String,
ViewingDate: 0001-01-01,
ViewingDateSpecified: False,
DeliveryDate: 0001-01-01,
DeliveryDateSpecified: False
}
],
Documents:
[
{
GlobalID: String,
RootDocumentID: String,
Code: String,
Subject: String,
VersionNumber: String,
NewestVersion: False,
RelationReference:
{
GlobalID: String,
Title: String
},
DocumentTypeReference:
{
GlobalID: String,
Title: String
},
ProjectReference:
{
GlobalID: String,
Title: String
},
ConstructionBlockReference:
{
GlobalID: String,
Title: String
},
ConstructionNumberReference:
{
GlobalID: String,
Title: String
},
HousingTypeReference:
{
GlobalID: String,
Title: String
},
Floor: 0,
FloorSpecified: False,
DeletedDate: 0001-01-01,
DeletedDateSpecified: False,
File:
{
Type: String,
Name: String,
Size: 0,
Content: String,
ModifiedDate: 0001-01-01
},
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
],
PurchaseContracts:
[
{
GlobalID: String,
Code: String,
Description: String,
ProjectReference:
{
GlobalID: String,
Title: String
},
ProductCode: String,
Relation:
{
GlobalID: String,
NameLine1: String,
NameLine2: String,
Address:
{
AddressLine1: String,
AddressLine2: String,
HouseNumber: String,
HouseNumberSuffix: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
MailingAddress:
{
POBox: String,
PostalCode: String,
City: String,
Country:
{
GlobalID: String,
Title: String
}
},
Telephone: String,
Mobile: String,
Email: String,
IBAN: String,
BankAccountNumber: String,
Website: String,
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
},
Inactive: False,
CustomFields:
[
{
Name: String,
Value: String
}
],
CreationDate: 0001-01-01,
CreatedBy: String,
ModifiedDate: 0001-01-01,
ModifiedBy: String
}
]
}